// The factory design pattern
#ifndef FACTORY_H
#define FACTORY_H

#include <vector>
#include "SFML\Graphics.hpp"
#include "Object.h"

using std::vector;

class Factory
{
public:
	static void DeleteObject(Object *);
	static void DeleteAll();
	static void AddObject(Object *);
	static void RenderAll(sf::RenderWindow* window);
	static void UpdateAll(float deltaT);

private:
	static void UpdatePhysics(int index, float deltaT);
	static void ResolveCollision(Object* a, Object* b);

	static std::vector<Object*>		m_objectList;
	static std::vector<Object*>		m_physicalObjectList;

};


#endif // FACTORY_H